package 算法.排序算法;

public class 选择排序 {
    public static void main(String[] args) {
        /*
            选择排序：
                1，从0索引开始，跟后面的元素一一比较。
                2，小的放前面，大的放后面。
                3，第一次循环结束后，最小的数据已经确定。
                4，第二次循环从1索引开始以此类推。

         */

        //1.定义一个数组
        int[] arr={2,4,5,3,1};

        //进行选择排序让数组变成1 2 3 4 5
        //因为在循环的时候，只要循环了前面4次最后一个也就确定了，索引可以-1
        for (int h=0;h<arr.length-1;h++) {
            //因为比较的元素开始可以不用和自己进行比较
            //为了提高效率索引可以h+1
            for (int i = h+1; i < arr.length; i++) {
                //定义变量记录开始的索引元素
                int tem=arr[h];
                if (tem>arr[i]){
                    //如果进行比较元素的值大于后面的值就进行互换
                    arr[h]=arr[i];
                    arr[i]=tem;
                }
            }
            //打印此时的数组
            for (int j : arr) {
                System.out.print(j+" ");
            }
            System.out.println();
        }
    }
}
